﻿using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using WebApiClientCore.Attributes;
using XUCore.WeChat.Apis;

namespace XUCore.WeChat.Enterprise.Apis.Group.Statistic
{
    /// <summary>
    /// 群聊数据统计
    /// </summary>
    [HttpHost("https://qyapi.weixin.qq.com/cgi-bin/externalcontact/")]
    public interface IEnterpriseGroupStatisticApi : IEnterpriseWeChatApiWithAccessTokenFilter
    {
        // /// <summary>
        // /// 获取「群聊数据统计」数据（按群主聚合的方式）
        // /// <see href="https://developer.work.weixin.qq.com/document/path/92133"/>
        // /// </summary>
        // /// <param name="access_token"></param>
        // /// <param name="input"></param>
        // /// <returns></returns>
        // [HttpPost("groupchat/statistic")]
        // Task<GroupStatisticApiResult> StatisticAsync([Required] string access_token, [Required] GroupStatisticInput input);
        /// <summary>
        /// 获取「群聊数据统计」数据（按群主聚合的方式）
        /// <see href="https://developer.work.weixin.qq.com/document/path/92133"/>
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("groupchat/statistic")]
        Task<GroupStatisticApiResult> StatisticAsync([Required] GroupStatisticInput input);
        // /// <summary>
        // /// 获取「群聊数据统计」数据（按群主聚合的方式）
        // /// <see href="https://developer.work.weixin.qq.com/document/path/92133"/>
        // /// </summary>
        // /// <param name="access_token"></param>
        // /// <param name="input"></param>
        // /// <returns></returns>
        // [HttpPost("groupchat/statistic_group_by_day")]
        // Task<GroupStatisticByDayApiResult> StatisticByDayAsync([Required] string access_token, [Required] GroupStatisticByDayInput input);
        /// <summary>
        /// 获取「群聊数据统计」数据（按群主聚合的方式）
        /// <see href="https://developer.work.weixin.qq.com/document/path/92133"/>
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("groupchat/statistic_group_by_day")]
        Task<GroupStatisticByDayApiResult> StatisticByDayAsync([Required] GroupStatisticByDayInput input);
    }
}